# -*- coding:utf-8 -*-
# model/model_result.py
"""
数据返回属性实体
"""


class DataResult:
    """数据返回属性：
        $ DataResult().status   # True/False
        $ DataResult().code     # 200
        $ DataResult().message  # ""
        $ DataResult().data     # {}
        $ dict(DataResult())
    字典使用方式：
        $ dict(DataResult())
    """

    def __init__(self):
        # 状态 True/False
        self.status = True

        # 状态码
        self.code = 200

        # 消息
        self.message = ""

        # 是否登录
        self.is_login = False

        # 数据
        self.data = {}

    def keys(self):
        """
        当对实例化对象使用dict(obj)的时候, 会调用这个方法,这里定义了字典的键, 其对应的值将以obj['name']的形式取
        """
        return self.__dict__.keys()

    def __getitem__(self, item):
        """
        当使用obj['name']的形式的时候, 将调用这个方法, 这里返回的结果就是值
        """
        return getattr(self, item)

    def __repr__(self):
        return 'DataResult(code: {}, status: {}, is_login: {}, message: {}, data: {})'\
                .format(self.code, self.status, self.is_login, self.message, self.data)
